#!/bin/bash

# Web聚合导航项目部署脚本

set -e

echo "🚀 开始部署 Web聚合导航项目..."

# 1. 拉取最新代码
echo "📥 拉取最新代码..."
git pull origin main

# 2. 安装依赖
echo "📦 安装依赖..."
npm ci --only=production

# 3. 生成 Prisma 客户端
echo "🔧 生成 Prisma 客户端..."
npx prisma generate

# 4. 运行数据库迁移
echo "🗄️ 运行数据库迁移..."
npx prisma db push

# 5. 构建项目
echo "🔨 构建项目..."
npm run build

# 6. 运行测试
echo "🧪 运行测试..."
npm test

# 7. 检查环境变量配置
if [ -f ".env.production" ]; then
    echo "📋 使用生产环境变量配置..."
    export $(cat .env.production | grep -v '^#' | xargs)
else
    echo "⚠️  未找到 .env.production 文件，使用默认配置"
fi

# 8. 重启 PM2 服务
echo "🔄 重启服务..."
pm2 restart ecosystem.config.js --env production

# 9. 保存 PM2 配置
pm2 save

echo "✅ 部署完成！"
if [ -n "$NEXT_PUBLIC_APP_URL" ]; then
    echo "🌐 应用运行在: $NEXT_PUBLIC_APP_URL"
else
    echo "🌐 应用运行在: http://localhost:3000"
fi

# 9. 显示服务状态
pm2 status
